/**
 * Created by Administrator on 2017/2/15 0015.
 */
//function seletor(element){
//    if(document.querySelectorAll(element).length>1){
//        return document.querySelectorAll(element);
//    }else{
//        return document.querySelector(element);
//    }
//}
//function isArrLike(obj){
//    if(Object.prototype.toString.call(obj).slice(8,-1)=="Array"){
//        return true;
//    }
//    var length="length" in obj && obj.length;
//    return typeof length=="number" && length>=0;
//}
//
//function each(obj,callback){
//    if(isArrLike(obj)){
//        for(var i=0;i<obj.length;i++){
//        if (callback.call(obj[i],i,obj[i])===false) break;
//        }
//    }else{
//        for(var k in obj){
//            if(callback.call(obj[k],k,obj[k])===false) break;
//        }
//    }
//    return obj;
//}
//
//function map(obj,callback){
//    var arr=[],tmp;
//    if(isArrLike(obj)){
//        for(var i=0;i<obj.length;i++){
//           tmp= callback(i,obj[i]);
//            if(tmp!=null){
//                arr.push(tmp)
//            }
//        }
//    }else{
//        for(var k in obj){
//          tmp=  callback(k,obj[k]);
//            if(tmp!=null){
//                arr.push(tmp)
//            }
//        }
//    }
//    return arr;
//}

function $$(ele){
    [].push.apply(this,$$.selector(ele));
}
$$.selector= function (element) {
    return document.querySelectorAll(element);
};
$$.isArrayLike= function (obj) {
    if(Object.prototype.toString.call(obj).slice(8,-1)=="Array"){
        return true;
    }
    var length="length" in obj && obj.length;
    return typeof length=="number" && length>=0;
}
$$.each= function (obj, callback) {
    if($$.isArrayLike(obj)){
        for(var i=0;i<obj.length;i++){
            if (callback.call(obj[i],i,obj[i])===false) break;
        }
    }else{
        for(var k in obj){
            if(callback.call(obj[k],k,obj[k])===false) break;
        }
    }
    return obj;
};
$$.map= function (obj, callback) {
    var arr=[],tmp;
    if($$.isArrayLike(obj)){
        for(var i=0;i<obj.length;i++){
            tmp= callback(obj[i],i);
            if(tmp!=null){
                arr.push(tmp)
            }
        }
    }else{
        for(var k in obj){
            tmp=  callback(obj[k],k);
            if(tmp!=null){
                arr.push(tmp)
            }
        }
    }
    return arr;
}
$$.prototype={
    selector:function (element) {
        return document.querySelectorAll(element);
    },
    isArrayLike: function (obj) {
    if(Object.prototype.toString.call(obj).slice(8,-1)=="Array"){
        return true;
    }
    var length="length" in obj && obj.length;
    return typeof length=="number" && length>=0;
},
    each: function (callback) {
        return $$.each(this,callback)
    },
    map: function (callback) {
        return $$.map(this,callback)
    }

}
function $(ele){
    return  new $$(ele)
}